Video cameras are pervasively deployed in society; for instance, it is common for millions of cameras to be deployed in a city. Cameras can be deployed for any number of purposes. For example, some cameras can be installed in or on buildings for surveillance and business intelligence. Other cameras can be deployed to capture video of outdoor scenes (e.g., streets) for traffic control and crime prevention.
Organizations can deploy large numbers of cameras. According to an illustration, a police department can deploy a significant number of cameras at various locations in a city. Conventionally, video streams from these cameras can be recorded, and if an incident were to occur, the recorded video streams can be reviewed. For instance, if a traffic accident were to occur, then recorded video streams from cameras that may have captured the traffic accident can be analyzed in an attempt to find relevant portions of the recorded video streams.
Traditionally, the recorded video streams were oftentimes manually reviewed; however, manual review of recorded video streams becomes increasingly more difficult as the number of cameras continues to increase. More recently, some approaches perform video analytics on the video streams ingested from the cameras. Yet, video analytics can have significant resource demands. For instance, to track objects in video, some techniques can process 1 frame per second (or less) on an 8-core machine. Pursuant to another example, techniques that use Deep Neural Networks for object recognition can employ on the order of 30 GFlops to process a single frame. Due to the high processing costs and high data rates of video streams, quality of results returned and lag in time for returning the results for conventional video analytics approaches can be detrimentally impacted.